<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>Getting started | Fitbitter</title>
    <meta name="generator" content="VuePress 1.8.2">
    
    <meta name="description" content="Fitbitter is a Flutter package that makes your life easier when dealing with Fitbit Web APIs.">
    <meta name="theme-color" content="#ff0000">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    
    <link rel="preload" href="/fitbitter/assets/css/0.styles.c96f97f1.css" as="style"><link rel="preload" href="/fitbitter/assets/js/app.411a122d.js" as="script"><link rel="preload" href="/fitbitter/assets/js/2.bc2acf6f.js" as="script"><link rel="preload" href="/fitbitter/assets/js/10.20013ba3.js" as="script"><link rel="prefetch" href="/fitbitter/assets/js/11.ac5d2caa.js"><link rel="prefetch" href="/fitbitter/assets/js/12.ed683bfb.js"><link rel="prefetch" href="/fitbitter/assets/js/13.4b8c0fe9.js"><link rel="prefetch" href="/fitbitter/assets/js/14.aacddd76.js"><link rel="prefetch" href="/fitbitter/assets/js/15.e9e9cac7.js"><link rel="prefetch" href="/fitbitter/assets/js/16.26f65e66.js"><link rel="prefetch" href="/fitbitter/assets/js/17.0ae95c9b.js"><link rel="prefetch" href="/fitbitter/assets/js/18.bd737b8f.js"><link rel="prefetch" href="/fitbitter/assets/js/19.378f9484.js"><link rel="prefetch" href="/fitbitter/assets/js/20.4703791f.js"><link rel="prefetch" href="/fitbitter/assets/js/3.2053bcf9.js"><link rel="prefetch" href="/fitbitter/assets/js/4.849471b2.js"><link rel="prefetch" href="/fitbitter/assets/js/5.a9d530e8.js"><link rel="prefetch" href="/fitbitter/assets/js/6.3d83467c.js"><link rel="prefetch" href="/fitbitter/assets/js/7.1fb23724.js"><link rel="prefetch" href="/fitbitter/assets/js/8.e7d2dab8.js"><link rel="prefetch" href="/fitbitter/assets/js/9.8c8180fb.js">
    <link rel="stylesheet" href="/fitbitter/assets/css/0.styles.c96f97f1.css">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/fitbitter/" class="home-link router-link-active"><!----> <span class="site-name">Fitbitter</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/fitbitter/getstarted/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
  Get Started
</a></div><div class="nav-item"><a href="/fitbitter/guides/" class="nav-link">
  Guides
</a></div><div class="nav-item"><a href="https://github.com/gcappon/fitbitter" target="_blank" rel="noopener noreferrer" class="nav-link external">
  Github
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://pub.dev/packages/fitbitter" target="_blank" rel="noopener noreferrer" class="nav-link external">
  Pub
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://pub.dev/documentation/fitbitter/latest/" target="_blank" rel="noopener noreferrer" class="nav-link external">
  API Docs
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/fitbitter/getstarted/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
  Get Started
</a></div><div class="nav-item"><a href="/fitbitter/guides/" class="nav-link">
  Guides
</a></div><div class="nav-item"><a href="https://github.com/gcappon/fitbitter" target="_blank" rel="noopener noreferrer" class="nav-link external">
  Github
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://pub.dev/packages/fitbitter" target="_blank" rel="noopener noreferrer" class="nav-link external">
  Pub
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://pub.dev/documentation/fitbitter/latest/" target="_blank" rel="noopener noreferrer" class="nav-link external">
  API Docs
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav>  <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Getting started</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/fitbitter/getstarted/#step-1-install-fitbitter" class="sidebar-link">Step 1: Install Fitbitter</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/fitbitter/getstarted/#for-android-only-modify-you-manifest" class="sidebar-link">(for Android only) Modify you manifest</a></li></ul></li><li><a href="/fitbitter/getstarted/#step-2-test-fitbitter" class="sidebar-link">Step 2: Test Fitbitter</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/fitbitter/getstarted/#preliminary-requirement-register-your-app" class="sidebar-link">Preliminary requirement: Register your app</a></li><li class="sidebar-sub-header"><a href="/fitbitter/getstarted/#app-authentication" class="sidebar-link">App authentication</a></li><li class="sidebar-sub-header"><a href="/fitbitter/getstarted/#fetch-step-count-data" class="sidebar-link">Fetch step count data</a></li></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="getting-started"><a href="#getting-started" class="header-anchor">#</a> Getting started</h1> <h2 id="step-1-install-fitbitter"><a href="#step-1-install-fitbitter" class="header-anchor">#</a> Step 1: Install Fitbitter</h2> <p>To install Fitbitter, simply add <code>fitbitter:</code> to the dependencies of your <code>pubspec.yaml</code> file:</p> <div class="language-yaml extra-class"><pre class="language-yaml"><code><span class="token key atrule">dependencies</span><span class="token punctuation">:</span>
    <span class="token key atrule">fitbitter</span><span class="token punctuation">:</span> <span class="token comment">#latest version</span>
</code></pre></div><h3 id="for-android-only-modify-you-manifest"><a href="#for-android-only-modify-you-manifest" class="header-anchor">#</a> (for Android only) Modify you manifest</h3> <p>Fitbitter uses <code>flutter_web_auth</code> to let you authenticate to Fitbit. In Android, you need to add these lines of code to your <code>android/app/src/main/AndroidManifest.xml</code> file:</p> <div class="language-xml extra-class"><pre class="language-xml"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>activity</span> <span class="token attr-name"><span class="token namespace">android:</span>name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>com.linusu.flutter_web_auth.CallbackActivity<span class="token punctuation">&quot;</span></span> <span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>intent-filter</span> <span class="token attr-name"><span class="token namespace">android:</span>label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>flutter_web_auth<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>action</span> <span class="token attr-name"><span class="token namespace">android:</span>name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>android.intent.action.VIEW<span class="token punctuation">&quot;</span></span> <span class="token punctuation">/&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>category</span> <span class="token attr-name"><span class="token namespace">android:</span>name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>android.intent.category.DEFAULT<span class="token punctuation">&quot;</span></span> <span class="token punctuation">/&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>category</span> <span class="token attr-name"><span class="token namespace">android:</span>name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>android.intent.category.BROWSABLE<span class="token punctuation">&quot;</span></span> <span class="token punctuation">/&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>data</span> <span class="token attr-name"><span class="token namespace">android:</span>scheme</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>YOUR_CALLBACK_SCHEME<span class="token punctuation">&quot;</span></span> <span class="token punctuation">/&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>intent-filter</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>activity</span><span class="token punctuation">&gt;</span></span>
</code></pre></div><p>and change <code>YOUR_CALLBACK_SCHEME</code> with your callback scheme (in the test example below this will be <code>example</code>)</p> <h2 id="step-2-test-fitbitter"><a href="#step-2-test-fitbitter" class="header-anchor">#</a> Step 2: Test Fitbitter</h2> <p>Once installed, it is time to test drive Fitbitter. In this example, we will use Fitbitter to authenticate our app into Fitbit APIs and simply fetch yesterday's step count.</p> <h3 id="preliminary-requirement-register-your-app"><a href="#preliminary-requirement-register-your-app" class="header-anchor">#</a> Preliminary requirement: Register your app</h3> <p>To be able to perform any operation with the Fitbit APIs, you must register first your application in the developer portal of Fitbit and obtain two IDs, namely the &quot;<strong>OAuth 2.0 Client ID</strong>&quot; and the &quot;<strong>Client Secret</strong>&quot;. To do so, you have to follow these steps.</p> <ul><li><p>Create a Fitbit account, if you do not have one.</p></li> <li><p>Register a new app at <a href="https://dev.fitbit.com/apps/new" target="_blank" rel="noopener noreferrer">https://dev.fitbit.com/apps/new<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.
The form will look like this:
<img src="/fitbitAppRegistrationForm.png" alt="Fitbit App Registration Form"></p></li> <li><p>Choose an &quot;Application Name&quot; (e.g., &quot;Example&quot;).</p></li> <li><p>Set a brief &quot;Description&quot; (e.g., &quot;Just a simple test of an awesome package.&quot;)</p></li> <li><p>Set the &quot;Application Website&quot;. It can be random for the purpose of testing the example so let's put https://www.example.com/.</p></li> <li><p>Set an &quot;Organization&quot; (e.g., &quot;Myself&quot;).</p></li> <li><p>Set an &quot;Organization Website&quot;. It can be random for the purpose of testing the example so let's put https://www.myself.com/.</p></li> <li><p>Set a &quot;Terms of Service Url&quot;. It can be random for the purpose of testing the example so let's put https://www.myself.com/tos.</p></li> <li><p>Set an &quot;Privacy Policy Url&quot;. It can be random for the purpose of testing the example so let's put https://www.myself.com/pp.</p></li> <li><p>Set the &quot;Application Type&quot; to &quot;Client&quot;.</p></li> <li><p>Choose a Callback URL&quot; (e.g., &quot;example://fitbit/auth&quot;).</p></li> <li><p>Choose a &quot;Default Access Type&quot; (e.g., &quot;Read-Only&quot;).</p></li> <li><p>Check the &quot;I have read and agree to the terms of service&quot; box.</p></li> <li><p>Click the &quot;Register&quot; button. You should now see the &quot;<strong>OAuth 2.0 Client ID</strong>&quot; and the &quot;<strong>Client Secret</strong>&quot; strings provided by Fitbit.</p></li></ul> <h3 id="app-authentication"><a href="#app-authentication" class="header-anchor">#</a> App authentication</h3> <p>You are now ready to authorize your application.</p> <p>To do that, simply call the asynchronous method <code>FitbitConnector.authorize()</code>, within your code, as:</p> <div class="language-dart extra-class"><pre class="language-dart"><code>    String<span class="token operator">?</span> userId <span class="token operator">=</span> <span class="token keyword">await</span> FitbitConnector<span class="token punctuation">.</span><span class="token function">authorize</span><span class="token punctuation">(</span>
        context<span class="token punctuation">:</span> context<span class="token punctuation">,</span>
        clientID<span class="token punctuation">:</span> <span class="token string">'&lt;OAuth 2.0 Client ID&gt;'</span><span class="token punctuation">,</span>
        clientSecret<span class="token punctuation">:</span> <span class="token string">'&lt;Client Secret&gt;'</span><span class="token punctuation">,</span>
        redirectUri<span class="token punctuation">:</span> <span class="token string">'&lt;Redirect Uri used during the registration, e.g., example://fitbit/auth&gt;'</span><span class="token punctuation">,</span>
        callbackUrlScheme<span class="token punctuation">:</span> <span class="token string">'&lt;Callback Uri scheme, e.g., example&gt;'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre></div><p>This will open a web view where user will be able to input his Fitbit credentials and login.
After the login, the web view will close and the method will return a <code>String?</code> containing the <code>userId</code>.</p> <div class="custom-block warning"><p class="custom-block-title">WARNING</p> <p>Don't worry about storing the auth tokens provided by the Fitbit API, Fitbitter will do that for you leveraging the <code>SharedPreferences</code> abd <code>GetIt</code> packages. If you want, you can access to the token values using</p> <div class="language-dart extra-class"><pre class="language-dart"><code>GetIt<span class="token punctuation">.</span>instance<span class="token operator">&lt;</span>SharedPreferences<span class="token operator">&gt;</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getString</span><span class="token punctuation">(</span><span class="token string">&quot;fitbitAccessToken&quot;</span><span class="token punctuation">)</span>
GetIt<span class="token punctuation">.</span>instance<span class="token operator">&lt;</span>SharedPreferences<span class="token operator">&gt;</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getString</span><span class="token punctuation">(</span><span class="token string">&quot;fitbitRefreshToken&quot;</span><span class="token punctuation">)</span>
</code></pre></div></div> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>Remember to retain <code>userId</code>: it will be used to fetch data.</p></div> <h3 id="fetch-step-count-data"><a href="#fetch-step-count-data" class="header-anchor">#</a> Fetch step count data</h3> <p>With your app authorized, you are now ready to fetch data from Fitbit. In this example, we will fetch yesterday's step count.</p> <p>Using Fitbitter, this is very easy. First instanciate a <code>FitbitActivityTimeseriesDataManager</code> of <code>type: 'steps'</code>:</p> <div class="language-dart extra-class"><pre class="language-dart"><code>    FitbitActivityTimeseriesDataManager
        fitbitActivityTimeseriesDataManager <span class="token operator">=</span>
        <span class="token function">FitbitActivityTimeseriesDataManager</span><span class="token punctuation">(</span>
            clientID<span class="token punctuation">:</span> <span class="token string">'&lt;OAuth 2.0 Client ID&gt;'</span><span class="token punctuation">,</span>
            clientSecret<span class="token punctuation">:</span> <span class="token string">'&lt;Client Secret&gt;'</span><span class="token punctuation">,</span>
            type<span class="token punctuation">:</span> <span class="token string">'steps'</span><span class="token punctuation">,</span> 
        <span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre></div><p>Then fetch the desired data using the <code>fetch</code> method of <code>FitbitActivityTimeseriesDataManager</code> with the proper <code>FitbitActivityTimeseriesAPIURL</code>:</p> <div class="language-dart extra-class"><pre class="language-dart"><code><span class="token keyword">final</span> stepsData <span class="token operator">=</span> <span class="token keyword">await</span> fitbitActivityTimeseriesDataManager<span class="token punctuation">.</span><span class="token function">fetch</span><span class="token punctuation">(</span>
    FitbitActivityTimeseriesAPIURL<span class="token punctuation">.</span><span class="token function">dayWithResource</span><span class="token punctuation">(</span>
        date<span class="token punctuation">:</span> DateTime<span class="token punctuation">.</span><span class="token function">now</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">subtract</span><span class="token punctuation">(</span><span class="token function">Duration</span><span class="token punctuation">(</span>days<span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
        userID<span class="token punctuation">:</span> fitbitAccount<span class="token punctuation">.</span>id<span class="token punctuation">,</span>
        resource<span class="token punctuation">:</span> fitbitActivityTimeseriesDataManager<span class="token punctuation">.</span>type<span class="token punctuation">,</span>
        <span class="token punctuation">)</span>
    <span class="token punctuation">)</span> <span class="token operator">as</span> List<span class="token operator">&lt;</span>FitbitActivityTimeseriesData<span class="token operator">&gt;</span><span class="token punctuation">;</span>
</code></pre></div><p>That's it!</p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>For more information on Fitbitter functionalities, check out the <a href="/fitbitter/guides/">Guides</a> and the Fitbitter <a href="https://pub.dev/documentation/fitbitter/latest/" target="_blank" rel="noopener noreferrer">Reference API<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p></div></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"></div></div>
    <script src="/fitbitter/assets/js/app.411a122d.js" defer></script><script src="/fitbitter/assets/js/2.bc2acf6f.js" defer></script><script src="/fitbitter/assets/js/10.20013ba3.js" defer></script>
  </body>
</html>
